Stored Procedure হলো একটি প্রি-ডিফাইন্ড SQL কুয়েরি বা কন্ট্রোল ফ্লো প্রোগ্রাম যা ডেটাবেস সার্ভারে সংরক্ষিত থাকে এবং একাধিক SQL স্টেটমেন্টের সমন্বয়ে কাজ করতে পারে। স্টোরড প্রোসিজারগুলি পুনঃব্যবহারযোগ্য কোড হিসেবে কাজ করে, এবং তারা খুবই কার্যকরী যখন একই ধরনের কাজ অনেকবার করা হয়, যেমন ডেটা ইনসার্ট, আপডেট, বা ডিলিট করা।
Input Parameters এবং Output Parameters হল দুটি গুরুত্বপূর্ণ ধারণা যা Stored Procedure-এ ব্যবহৃত হয়।
1. Input Parameters:
Input Parameters হল এমন প্যারামিটার যা Stored Procedure-এ পাস করা হয় যখন স্টোরড প্রোসিজারটি কল করা হয়। এই প্যারামিটারগুলো Stored Procedure এর মধ্যে ব্যবহৃত মান বা ডেটা সরবরাহ করে। Input Parameters ব্যবহার করে আপনি স্টোরড প্রোসিজারের মধ্যে ডাইনামিকভাবে ডেটা প্রক্রিয়াকরণ করতে পারেন।
Input Parameters উদাহরণ:
ধরা যাক, আপনি একটি add_employee নামের স্টোরড প্রোসিজার তৈরি করতে চান, যা নতুন কর্মচারী যোগ করবে। এই প্রোসিজারে কর্মচারীর নাম, বয়স, এবং বেতন ইনপুট হিসেবে পাস করা হবে।
DELIMITER
DELIMITER ;
এখানে:
emp_name,emp_age, এবংemp_salaryহল Input Parameters।INকীওয়ার্ডটি নির্দেশ করে যে এগুলো ইনপুট প্যারামিটার।
আপনি এই Stored Procedure-টি কল করতে পারেন:
CALL add_employee('John Doe', 30, 50000.00);
এই কমান্ডটি John Doe নামের কর্মচারীকে ৩০ বছর বয়স এবং ৫০,০০০ বেতনে employees টেবিলে যোগ করবে।
2. Output Parameters:
Output Parameters হল এমন প্যারামিটার যা Stored Procedure-এর মধ্যে ফলাফল ফেরত দেয়। এগুলি সাধারণত প্রক্রিয়া শেষ হওয়ার পর স্টোরড প্রোসিজারের বাইরের জায়গায় মান ফেরত পাঠানোর জন্য ব্যবহৃত হয়। আপনি OUT কীওয়ার্ড ব্যবহার করে আউটপুট প্যারামিটারগুলো ডিফাইন করতে পারেন।
Output Parameters উদাহরণ:
ধরা যাক, আপনি একটি get_employee_salary নামের স্টোরড প্রোসিজার তৈরি করতে চান, যা একটি কর্মচারীর ID ইনপুট হিসেবে নেবে এবং কর্মচারীর বেতন আউটপুট হিসেবে ফিরিয়ে দেবে।
DELIMITER
DELIMITER ;
এখানে:
emp_idহল Input Parameter, যা কর্মচারীর ID গ্রহণ করে।emp_salaryহল Output Parameter, যা নির্বাচিত কর্মচারীর বেতন ফেরত পাঠায়।
এখন, আপনি এই Stored Procedure-টি কল করতে পারেন এবং আউটপুট প্যারামিটারটি ব্যবহার করতে পারেন:
CALL get_employee_salary(1, @salary);
SELECT @salary;
এখানে, @salary একটি ভেরিয়েবল যা get_employee_salary প্রোসিজারের আউটপুট হিসেবে বেতন ধারণ করবে, এবং পরে SELECT দিয়ে আপনি এটি দেখতে পারবেন।
3. Input এবং Output Parameters একসাথে ব্যবহার:
একটি Stored Procedure-এ Input এবং Output প্যারামিটার একসাথে ব্যবহার করা সম্ভব। এভাবে, আপনি ইনপুট প্রদান করতে পারবেন এবং স্টোরড প্রোসিজারটি প্রক্রিয়া শেষে আউটপুট ফেরত দিতে পারবে।
Input এবং Output Parameters একসাথে উদাহরণ:
ধরা যাক, আপনি একটি update_employee_salary নামের স্টোরড প্রোসিজার তৈরি করতে চান, যা কর্মচারীর ID এবং নতুন বেতন ইনপুট হিসেবে নিবে এবং সফলভাবে আপডেট হলে, সেটি আউটপুট হিসেবে "Success" বা "Failure" ফেরত দিবে।
DELIMITER
DELIMITER ;
এখানে:
emp_idএবংnew_salaryহল Input Parameters।result_messageহল Output Parameter, যা স্টোরড প্রোসিজারটির সফলতা বা ব্যর্থতার বার্তা প্রদান করবে।
আপনি এই Stored Procedure-টি কল করতে পারেন:
CALL update_employee_salary(1, 60000.00, @message);
SELECT @message;
এটি কর্মচারী ID ১-এর বেতন ৬০,০০০.০০ টাকা আপডেট করবে এবং আউটপুট হিসেবে "Success" বা "Failure" বার্তা ফেরত দেবে।
4. Benefits of Using Parameters in Stored Procedures:
- কোড পুনঃব্যবহারযোগ্যতা: Stored Procedures একবার তৈরি করে বারবার ব্যবহার করা যায়। ইনপুট প্যারামিটার দ্বারা বিভিন্ন মান দিয়ে একই প্রোসিজারটি চালানো সম্ভব।
- দক্ষতা এবং কার্যকারিতা: Stored Procedures দ্রুত কার্যকর হয়, কারণ ডেটাবেস সার্ভার স্টোরড প্রোসিজারটি একবার কম্পাইল করার পর বারবার চালাতে পারে।
- নিরাপত্তা: ইনপুট প্যারামিটার ব্যবহার করে আপনি ডেটাবেসে SQL ইনজেকশন আক্রমণ থেকে সুরক্ষা পেতে পারেন। কারণ প্যারামিটারাইজড কুয়েরি SQL ইনজেকশন অ্যাটাক এড়ায়।
- প্রবাহ নিয়ন্ত্রণ: Stored Procedures জটিল কাজগুলি সহজ করে এবং ডেটাবেসের কন্ট্রোল ফ্লো নির্ধারণে সহায়তা করে।
সংক্ষেপে, Input এবং Output Parameters ব্যবহার করে আপনি আপনার Stored Procedure-কে আরো নমনীয় এবং ডাইনামিক করতে পারেন, যা বিভিন্ন পরিস্থিতিতে বিভিন্ন ধরণের ডেটা প্রক্রিয়াকরণ করতে সক্ষম।
Read more